package com.juqimiao.di.demos.d01.services.impl;

import com.juqimiao.di.demos.d01.daos.UserDao;
import com.juqimiao.di.demos.d01.services.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 演示如何使用 {@link Service}标注一个对象为bean对象。
 * @author collin
 * @date 2020/2/18
 */
@Service
public class UserServiceImpl
        implements UserService {

    /**
     * UserDao字段，{@link UserDao}。
     */
    private UserDao userDao;

    /**
     * 演示如何使用 {@link Autowired}向构造函数中装配bean对象。
     * 用构造函数装配的方式，为构造函数装配的对象如果为null将引发错误。
     * @param userDao {@link UserDao}
     */
    @Autowired
    public UserServiceImpl(UserDao userDao){
        //userDao由spring container自动装配（初始化）
        this.userDao = userDao;
    }

    /**
     * 获取用户信息。
     * @param name 用户名字。
     * @return 用户信息。
     */
    @Override
    public String getInfo(String name) {
        return userDao.select(name);
    }
}
